From 4749c682b0e652d9dfa831eeb7ad7eafbed218eb Mon Sep 17 00:00:00 2001 From: "emellor@leeni.uk.xensource.com" Date: Thu, 2 Mar 2006 01:59:28 +0100 Subject: [PATCH] Avoid a race between Xend removing the vm entries corresponding to a domain, and the hotplug scripts checking whether that domain is still alive. This triggers the "xenstore-read: couldn't read path /local/domain/107/vm" message in /var/log/xen-hotplug.log, followed by "Device XYZ is mounted in a guest domain and so cannot be mounted now". Closes bug #514. Signed-off-by: Ewan Mellor --- tools/examples/block | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/examples/block b/tools/examples/block index b6a374c3c4..e73ab9c8bf 100644 --- a/tools/examples/block +++ b/tools/examples/block @@ -129,7 +129,14 @@ check_sharing() same_vm() { local otherdom="$1" - local othervm=$(xenstore-read "/local/domain/$otherdom/vm") + # Note that othervm can be MISSING here, because Xend will be racing with + # the hotplug scripts -- the entries in /local/domain can be removed by + # Xend before the hotplug scripts have removed the entry in + # /local/domain/0/backend/. In this case, we want to pretend that the + # VM is the same as FRONTEND_UUID, because that way the 'sharing' will be + # allowed. + local othervm=$(xenstore_read_default "/local/domain/$otherdom/vm" \ + "$FRONTEND_UUID") [ "$FRONTEND_UUID" == "$othervm" ] } -- 2.30.2